home *** CD-ROM | disk | FTP | other *** search
/ Holt Researcher: American History / Holt Researcher: American History.iso / pc / modules / dbpictxt.dxr / 00004_DB Pict Text Var.ls < prev    next >
Encoding:
Text File  |  2000-01-27  |  9.1 KB  |  366 lines

  1. property pWindowName, pSpriteList, pMaxRect, pMinRect, pButtonList, pTextMemberNum, pArtMember, pMediaName, pSaveObj, pPointingCursor, pMemberList, pNArrowObj, pSArrowObj, pSliderObj, pFieldLeft, pFieldTop, pFieldRight, pFieldBottom, pLineHeight, pTracking, pStartX, pStartTop, pStartBottom, pEndTop, pEndX, pEndBottom, pStartSel, pMiddleSel, pEndSel, pRolloverTextObj, pTitle, pPictRect, pBorderRectList, pTextRectList, pCastLib
  2.  
  3. on new me
  4.   pButtonList = [:]
  5.   pPointingCursor = [member("point hand"), member("point hand mask")]
  6.   return me
  7. end
  8.  
  9. on SetScrollProps me
  10.   NArrowSp = getaProp(pSpriteList, #NArrow)
  11.   pNArrowObj = getaProp(pButtonList, NArrowSp)
  12.   SArrowSp = getaProp(pSpriteList, #SArrow)
  13.   pSArrowObj = getaProp(pButtonList, SArrowSp)
  14.   ThumbSp = getaProp(pSpriteList, #VThumb)
  15.   pSliderObj = getaProp(pButtonList, ThumbSp)
  16.   FieldRect = the rect of sprite getaProp(pSpriteList, #text)
  17.   pFieldLeft = getAt(FieldRect, 1)
  18.   pFieldTop = getAt(FieldRect, 2)
  19.   pFieldRight = getAt(FieldRect, 3)
  20.   pFieldBottom = getAt(FieldRect, 4)
  21.   pLineHeight = the textHeight of field pTextMemberNum
  22.   SetPuppetState([7, 9], #c, 1)
  23.   member("texthold f").text = EMPTY
  24. end
  25.  
  26. on HiliteText me, clickedSprite
  27.   pTracking = 1
  28.   StartChar = the mouseChar
  29.   repeat while the stillDown
  30.     SelectionScroll(me)
  31.     X = the mouseH
  32.     Y = the mouseV
  33.     if X <= pFieldLeft then
  34.       X = pFieldLeft + 1
  35.     end if
  36.     if X >= pFieldRight then
  37.       X = pFieldRight - 1
  38.     end if
  39.     if Y <= pFieldTop then
  40.       Y = pFieldTop + 1
  41.     end if
  42.     if Y >= pFieldBottom then
  43.       Y = pFieldBottom - 1
  44.     end if
  45.     EndChar = locToCharPos(member(pTextMemberNum), point(X - pFieldLeft, Y - pFieldTop))
  46.     SetSelections(me, StartChar, EndChar)
  47.     SetVisSelections(me)
  48.   end repeat
  49.   CalcFinalSelection(me, StartChar, EndChar)
  50.   pTracking = 0
  51. end
  52.  
  53. on SetSelections me, StartChar, EndChar
  54.   TempStart = min(StartChar, EndChar)
  55.   TempEnd = max(StartChar, EndChar)
  56.   StartChar = TempStart
  57.   EndChar = TempEnd
  58.   StartLoc = charPosToLoc(member(pTextMemberNum), StartChar)
  59.   pStartX = getAt(StartLoc, 1) + pFieldLeft
  60.   pStartTop = getAt(StartLoc, 2) + pFieldTop - member(pTextMemberNum).scrollTop + GetHiliteAdjustment(me)
  61.   pStartBottom = pStartTop + pLineHeight
  62.   EndLoc = charPosToLoc(member(pTextMemberNum), EndChar)
  63.   pEndTop = getAt(EndLoc, 2) + pFieldTop - member(pTextMemberNum).scrollTop + GetHiliteAdjustment(me)
  64.   pEndX = getAt(EndLoc, 1) + pFieldLeft
  65.   pEndBottom = pEndTop + pLineHeight
  66.   if pStartTop = pEndTop then
  67.     pStartSel = rect(pStartX, pStartTop, pEndX, pStartBottom)
  68.     pEndSel = #NotUsed
  69.   else
  70.     if pStartTop < pEndTop then
  71.       pStartSel = rect(pStartX, pStartTop, pFieldRight, pStartBottom)
  72.       pEndSel = rect(pFieldLeft, pEndTop, pEndX, pEndBottom)
  73.     end if
  74.   end if
  75.   SetMiddleSelection(me)
  76. end
  77.  
  78. on SetMiddleSelection me
  79.   if ilk(pEndSel) = #rect then
  80.     pMiddleSel = rect(pFieldLeft, getAt(pStartSel, 4), pFieldRight, getAt(pEndSel, 2))
  81.   else
  82.     pMiddleSel = pEndSel
  83.   end if
  84. end
  85.  
  86. on SetVisSelections me
  87.   set the rect of sprite 7 to getVisSelection(me, pStartSel)
  88.   set the rect of sprite 8 to getVisSelection(me, pEndSel)
  89.   set the rect of sprite 9 to getVisSelection(me, pMiddleSel)
  90.   updateStage()
  91. end
  92.  
  93. on getVisSelection me, selRect
  94.   if ilk(selRect) = #rect then
  95.     R = rect(-1, -1, -1, -1)
  96.     if not ((selRect.top > pFieldBottom) or (selRect.bottom < pFieldTop)) then
  97.       R.left = max(selRect.left, pFieldLeft)
  98.       R.top = max(selRect.top, pFieldTop)
  99.       R.right = min(selRect.right, pFieldRight)
  100.       R.bottom = min(selRect.bottom, pFieldBottom)
  101.     end if
  102.   else
  103.     R = rect(-1, -1, -1, -1)
  104.   end if
  105.   return R
  106. end
  107.  
  108. on SelectionScroll me
  109.   if the mouseV < pFieldTop then
  110.     if not minReached(pSliderObj) then
  111.       simulateClickOn(pNArrowObj)
  112.     end if
  113.   else
  114.     if the mouseV > pFieldBottom then
  115.       if not maxReached(pSliderObj) then
  116.         simulateClickOn(pSArrowObj)
  117.       end if
  118.     end if
  119.   end if
  120. end
  121.  
  122. on scroll me, NewSetting
  123.   diff = NewSetting - (member(pTextMemberNum).scrollTop / pLineHeight)
  124.   increment = diff * pLineHeight
  125.   pStartSel = ScrollMoveSelection(me, pStartSel, increment)
  126.   pEndSel = ScrollMoveSelection(me, pEndSel, increment)
  127.   SetMiddleSelection(me)
  128.   if not pTracking then
  129.     SetVisSelections(me)
  130.   end if
  131.   return me
  132. end
  133.  
  134. on ScrollMoveSelection me, SelectionRect, increment
  135.   if ilk(SelectionRect) = #rect then
  136.     SelectionRect.top = SelectionRect.top - increment
  137.     SelectionRect.bottom = SelectionRect.bottom - increment
  138.   end if
  139.   return SelectionRect
  140. end
  141.  
  142. on CalcFinalSelection me, StartChar, EndChar
  143.   TempStart = min(StartChar, EndChar)
  144.   TempEnd = max(StartChar, EndChar)
  145.   StartChar = TempStart
  146.   EndChar = TempEnd
  147.   member("texthold f").text = char StartChar to EndChar - 1 of the text of field pTextMemberNum
  148.   if not (member("texthold f").text = EMPTY) then
  149.     enable(getaProp(pButtonList, getaProp(pSpriteList, #CopyButton)))
  150.   else
  151.     disable(getaProp(pButtonList, getaProp(pSpriteList, #CopyButton)))
  152.   end if
  153. end
  154.  
  155. on GetHiliteAdjustment me
  156.   if the machineType = 256 then
  157.     return -pLineHeight
  158.   else
  159.     return -pLineHeight
  160.   end if
  161. end
  162.  
  163. on HideSelections me
  164.   pStartSel = #NotUsed
  165.   pEndSel = #NotUsed
  166.   pMiddleSel = #NotUsed
  167.   set the rect of sprite 7 to rect(-333, -333, -333, -333)
  168.   set the rect of sprite 8 to rect(-333, -333, -333, -333)
  169.   set the rect of sprite 9 to rect(-333, -333, -333, -333)
  170.   updateStage()
  171. end
  172.  
  173. on InitRollOverText me
  174.   rolloverList = []
  175.   setAt(rolloverList, getaProp(pSpriteList, #closeBox), 16)
  176.   setAt(rolloverList, getaProp(pSpriteList, #CopyButton), 13)
  177.   setAt(rolloverList, getaProp(pSpriteList, #PrintButton), 11)
  178.   setAt(rolloverList, getaProp(pSpriteList, #SaveButton), 10)
  179.   setAt(rolloverList, getaProp(pSpriteList, #MaxMinBox), 18)
  180.   pRolloverTextObj = new(script("rollover text"), rolloverList)
  181. end
  182.  
  183. on print me
  184.   global gEnvironObj
  185.   if not isMemoryAvailable("print the document", 1200, 500) then
  186.     exit
  187.   end if
  188.   memberNum = pTextMemberNum
  189.   PictMemberNum = GetArtMember(me)
  190.   TitleMember = the number of member "print title f"
  191.   unLoad()
  192.   doc = new(xtra("PrintOMatic"))
  193.   if not objectp(doc) then
  194.     alert("A problem was encountered while initializing the printer.")
  195.     exit
  196.   end if
  197.   pageW = getPageWidth(doc)
  198.   pageH = getPageHeight(doc)
  199.   set the textSize of member TitleMember to 14
  200.   member(TitleMember).rect = rect(0, 0, pageW, 0)
  201.   TitleH = member(TitleMember).height
  202.   picth = member(PictMemberNum).height
  203.   pgNumSym = numToChar(166)
  204.   newPage(doc)
  205.   setTextJust(doc, "centered")
  206.   CurrBottom = TitleH + 3
  207.   newFrame(doc, rect(0, 0, pageW, CurrBottom), 0)
  208.   append(doc, member(TitleMember), 1)
  209.   CurrTop = CurrBottom + 36
  210.   CurrBottom = CurrTop + picth + 3
  211.   newFrame(doc, rect(0, CurrTop, pageW, CurrBottom), 0)
  212.   append(doc, member(PictMemberNum), 1)
  213.   setTextJust(doc, "left")
  214.   CurrTop = CurrBottom + 36
  215.   CurrBottom = pageH - 36
  216.   newFrame(doc, rect(0, CurrTop, pageW, CurrBottom), 0)
  217.   append(doc, member(pTextMemberNum), 1)
  218.   CurrTop = CurrBottom
  219.   CurrBottom = pageH
  220.   newFrame(doc, rect(0, CurrTop, pageW, CurrBottom), 0)
  221.   append(doc, member("copyright HRW").text, 1)
  222.   setDocumentName(doc, "American History")
  223.   if doJobSetup(doc) then
  224.     print(doc)
  225.   end if
  226.   doc = 0
  227.   return me
  228. end
  229.  
  230. on save me
  231.   showMe(pSaveObj)
  232.   return me
  233. end
  234.  
  235. on doRolloverText me
  236.   doRolloverText(pRolloverTextObj)
  237. end
  238.  
  239. on SetSaveObj me
  240.   pSaveObj = new(script("Save Pict Text Var"), me)
  241. end
  242.  
  243. on GetSaveObj me
  244.   return pSaveObj
  245. end
  246.  
  247. on SetButtonList me, xList
  248.   pButtonList = xList
  249. end
  250.  
  251. on GetButtonList me
  252.   return pButtonList
  253. end
  254.  
  255. on SetTextMemberNum me, Var
  256.   pTextMemberNum = Var
  257. end
  258.  
  259. on GetTextMemberNum me
  260.   return pTextMemberNum
  261. end
  262.  
  263. on SetArtMember me, xName
  264.   pArtMember = xName
  265. end
  266.  
  267. on GetArtMember me
  268.   return pArtMember
  269. end
  270.  
  271. on setTitle me, xName
  272.   pTitle = xName
  273. end
  274.  
  275. on getTitle me
  276.   return pTitle
  277. end
  278.  
  279. on ResizeScroll me, theThumbLoc, minPixel, maxPixel, initialSetting, numSettings, minSetting, maxSetting
  280.   resize(pSliderObj, theThumbLoc, minPixel, maxPixel, initialSetting, numSettings, minSetting, maxSetting)
  281. end
  282.  
  283. on SetPictRect me, xRect
  284.   pPictRect = xRect
  285. end
  286.  
  287. on GetPictRect me
  288.   return pPictRect
  289. end
  290.  
  291. on SetBorderRect me, xList
  292.   pBorderRectList = xList
  293. end
  294.  
  295. on GetBorderRect me, size
  296.   return getAt(pBorderRectList, size)
  297. end
  298.  
  299. on GetPointingCursor me
  300.   return pPointingCursor
  301. end
  302.  
  303. on SetTextRect me, xList
  304.   pTextRectList = xList
  305. end
  306.  
  307. on GetTextRect me, size
  308.   return getAt(pTextRectList, size)
  309. end
  310.  
  311. on SetMemberList me, list
  312.   pMemberList = list
  313. end
  314.  
  315. on GetMemberList me
  316.   return pMemberList
  317. end
  318.  
  319. on SetSpriteList me, list
  320.   pSpriteList = list
  321. end
  322.  
  323. on GetSpriteList me
  324.   return pSpriteList
  325. end
  326.  
  327. on SetCastLib me, xName
  328.   pCastLib = xName
  329. end
  330.  
  331. on GetCastLib me
  332.   return pCastLib
  333. end
  334.  
  335. on SetMediaName me, xName
  336.   pMediaName = xName
  337. end
  338.  
  339. on GetMediaName me
  340.   return pMediaName
  341. end
  342.  
  343. on condemn me
  344.   pButtonList = CondemnList(me, pButtonList)
  345.   condemn(pNArrowObj)
  346.   pNArrowObj = 0
  347.   condemn(pSArrowObj)
  348.   pSArrowObj = 0
  349.   condemn(pSliderObj)
  350.   pSliderObj = 0
  351.   pRolloverTextObj = 0
  352.   condemn(pSaveObj)
  353.   pSaveObj = 0
  354.   return me
  355. end
  356.  
  357. on CondemnList me, xList
  358.   MaxCount = count(xList)
  359.   repeat with rc = 1 to MaxCount
  360.     xObj = getAt(xList, rc)
  361.     condemn(xObj)
  362.     setAt(xList, rc, 0)
  363.   end repeat
  364.   return 0
  365. end
  366.